import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../views/Login.vue'

// 引入验证token功能
import { checktoken } from '@/apis/user'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'login',
    component: Login
  },
  {
    path: '/index',
    name: 'index',
    // 懒加载,只有点击时候才会加载页面,提升加载性能
    component: () => import('../views/Index.vue'),//主页
    // 引入子目录
    children: [{
      path: '/index/outindex',
      name: 'index/outindex',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/OutIndex.vue')//主页-后台
    }, {
      path: '/index/order',
      name: 'index/order',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/Order.vue')//主页-订单
    }, {
      path: '/index/shopmanage',
      name: 'index/shopmanage',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/ShopManage.vue')//主页-店铺管理
    },
    {
      path: '/index/productadd',
      name: 'index/productadd',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/product/ProductAdd.vue')//主页-商品添加
    },
    {
      path: '/index/productlist',
      name: 'index/productlist',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/product/ProductList.vue')//主页-商品列表
    }, {
      path: '/index/producttype',
      name: 'index/producttype',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/product/ProductType.vue')//主页-商品分类
    },
    {
      path: '/index/ordersell',
      name: 'index/ordersell',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/sell/OrderSell.vue')//主页-订单统计
    }, {
      path: '/index/productsell',
      name: 'index/productsell',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/sell/ProductSell.vue')//主页-商品统计
    },
    {
      path: '/index/adduser',
      name: 'index/adduser',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/user/AddUser.vue')//主页-添加帐号
    }, {
      path: '/index/changepwd',
      name: 'index/changepwd',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/user/ChangePwd.vue')//主页-更改密码
    }, {
      path: '/index/userlist',
      name: 'index/userlist',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/user/UserList.vue')//主页-帐号列表
    }, {
      path: '/index/getuser',
      name: 'index/getuser',
      // 懒加载,只有点击时候才会加载页面,提升加载性能
      component: () => import('../views/modules/user/GetUser.vue')//主页-获取自身列表
    },]
  },
  {
    path: '*',//路径名*号,放在最后,表示都找不到上面页面时,会跳转到这个页面
    name: 'error404',
    // 懒加载,只有点击时候才会加载页面,提升加载性能
    component: () => import('../views/Error.vue')//主页-404页面
  }
]

const router = new VueRouter({
  routes
})

// 路由拦截
router.beforeEach((to, from, next) => {
  // 判定当前路由是登录页面,就可以执行下一个
  if (to.path == '/') {
    // console.log(from);
    // 是登录页面时,放行加载页面
    next()
  } else {
    // 当前token值是否还在有效期
    checktoken({
      token: localStorage.token
    }
    ).then(res => {
      // console.log(res);
      // 判定token是否还在有效期,是的话就放行
      if (res.data.code == 0) {
        next()
      } else {
        // 不是的话就跳转回登录界面
        next('/')
      }
    })
  }
})

export default router
